﻿// 101 简单图判定.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>

using  namespace std;

/*
http://oj.daimayuan.top/course/14/problem/596


给你一张 n个点 m条边的无向图，点的编号为 1到 n，请判断此图是不是一张简单图。

输入格式
第一行两个整数 n,m分别表示图的点数和边数。

接下来 m行，每行两个整数 x,y，表示 x号点和 y号点之间有一条边。

输出格式
输出一行一个字符串，表示答案。如果是简单图输出 Yes，否则输出 No。

样例输入
2 2
1 2
2 1
样例输出
No
数据规模
对于所有数据，保证 1≤n≤1000,0≤m≤100000,1≤x,y≤n。
*/

int n, m, a[1001][1001];


int main()
{
	scanf("%d%d", &n, &m);
	for (int i = 1; i <= m; i++) {
		int x, y;
		scanf("%d%d",&x,&y);
		if (x == y || a[x][y]) {
			printf("No\n");
			return 0;
		}
		a[x][y] = a[y][x] = 1;
	}

	printf("Yes\n");

	return 0;
}

